package com.example.myspringboot.web.data;

import com.example.myspringboot.service.shujuchuli.HandleDataServiceImpl;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

/**
 * @author cy
 * @date 2024/6/12
 */
@RestController
@RequestMapping("/data")
@RequiredArgsConstructor
@Slf4j
public class DataHandleController {

    private final HandleDataServiceImpl handleDataService;

    /**
     * 处理文件上传的请求。
     *
     * 该方法通过POST请求接收上传的文件，并指定文件名。文件上传是Web应用中常见的功能，
     * 这里通过Spring MVC的@RequestMapping注解和@RequestParam注解来实现。
     *
     * @param file 上传的文件对象，由Spring MVC框架自动绑定请求中的文件数据。
     * @param fileName 上传文件的名称，由用户在前端指定，用于在服务端标识文件。
     * @return 返回字符串"ok"，表示文件上传操作完成。
     */
    @RequestMapping(value = "/upload/file", method = RequestMethod.POST)
    public String uploadFile(@RequestParam("file") MultipartFile file, String fileName) {
        // 调用处理数据服务层的方法，上传文件。
        handleDataService.uploadFile(fileName, file);
        // 返回简单的成功标识
        return "ok";
    }
}
